/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.compassion.util;

import com.opensymphony.xwork2.ActionContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.json.JSONArray;
import sv.com.compassion.dao.GenericoDAO;
import sv.com.compassion.entidades.Actividad;
import sv.com.compassion.entidades.Aula;
import sv.com.compassion.entidades.Beneficiario;
import sv.com.compassion.entidades.Cargo;
import sv.com.compassion.entidades.Cdi;
import sv.com.compassion.entidades.Departamento;
import sv.com.compassion.entidades.Empleado;
import sv.com.compassion.entidades.Municipio;
import sv.com.compassion.entidades.Nivelescolaridad;
import sv.com.compassion.entidades.Padecimiento;
import sv.com.compassion.entidades.Rangoedad;
import sv.com.compassion.entidades.Tipoactividad;
import sv.com.compassion.entidades.Tiposalida;
import sv.com.compassion.entidades.Tipotutor;
import sv.com.compassion.entidades.Tutor;

/** 
* Clase utilitaria para deplegar los combos usados en la aplicación extiende de ComunAction
* la cuál extiende de ActionSupport, para hacer uso de las notación @Override.
* @author grupo de Tesis
*/
public class ComboAction extends ComunAction {
    private GenericoDAO genericoDAO;
    private String      identDepto;
    private String      dummy;
    private String      nDusuario;
    private String      nDUI;
    private String      idMun;
    private String      idBen;
    private String      nombreCdi;
    private String      nombreAula;
    
    
 /**
 *Constructor.  
 *@param GenericoDAO interface donde se encuentran los métodos para acceder a 
 * a la clases entidades necesarias. 
 */    
    
public  ComboAction(GenericoDAO genericoDAO){
        this.genericoDAO = genericoDAO;

}  
/**
 * Busca el método que se ejecutara
 */
    @Override
    public String execute(){   
       String oper = getRequest().getParameter("oper");  
       if(oper != null){
         if(oper.equals("comboGrado")){
            comboGrado();
         }else
         if(oper.equals("comboCDIs")){
            comboCDIs();
         }else
         if(oper.equals("comboMunicipio")){
            comboMunicipio();
         }else
         if(oper.equals("comboRangoEdad")){

            comboRangoEdad();
         }else
         if(oper.equals("comboTipoAct")){
            comboRComboTipoAct();
         }else
         if(oper.equals("comboTutor")){
            comboTutor();
         }else
         if(oper.equals("comboAula")){
            comboAula();
         }else
         if(oper.equals("comboPadecimiento")){
            comboPadecimiento();
         }else  
         if(oper.equals("comboBeneficario")){
            comboBeneficario();
         }else  
         if(oper.equals("comboCargo")){
            comboCargo();
         }else  
         if(oper.equals("comboTipoTutor")){
            comboTipoTutor();  
         }else  
         if(oper.equals("comboActividades")){
            comboActividades();
         }else  
         if(oper.equals("comboTipoSalida")){
            comboTipoSalida();
         }else  
         if(oper.equals("comboDepartamento")){
            comboDepartamento();
         }else
         if(oper.equals("validarUsuarios")){
            validarUsuarios();
         }else
         if(oper.equals("validarCDIs")){
             validarCDIs();
         }else
         if(oper.equals("validarAula")){
             validarAula();
         }             
         
      }
       return null;
    }
    /**
     * Método para mostrar y controlar los tipos de tutores que se encuentra en Tipotutor. 
     */
    public void  comboTipoTutor(){
       List<Tipotutor> listaTipoTutor = null;
      try{
        String  query = "SELECT t FROM Tipotutor t ";

        listaTipoTutor = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");
        combo.setDescripcion("Tipo de Tutor");
        micombo.add(combo);
        for(Tipotutor t: listaTipoTutor){
            combo   =   new Combo();
            combo.setValor(t.getIdTipoTutor().toString());
            combo.setDescripcion(t.getNomTipoTutor());
            micombo.add(combo);
        }   
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Tipotutor.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }
    }			
    /**
     * Metodo para mostrar y controlar los diferentes niveles de escolaridad encontrados en Nivelescolaridad.
     */
    public void  comboGrado(){
       List<Nivelescolaridad> listaNivelescolaridad = null;
      try{
        String  query = "SELECT n FROM Nivelescolaridad n ";

        listaNivelescolaridad = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");
        combo.setDescripcion("Grado Escolar");
        micombo.add(combo);
        for(Nivelescolaridad n: listaNivelescolaridad){
            combo   =   new Combo();
            combo.setValor(n.getIdNivelEscolaridad().toString());
            combo.setDescripcion(n.getNomNivelEscolaridad());
            micombo.add(combo);
        }   
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Nivelescolaridad.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }
        
    }
  /**
 * Muestra y controla los Municipios que se almacenan en Municipio.
 */  
    public void  comboMunicipio(){
       List<Municipio> listaMunicipio = null;
      try{
        String  query = "SELECT n FROM Municipio n where";
        
        
        identDepto = getRequest().getParameter("identDepto");
        dummy = getRequest().getParameter("dummy");
        idMun = getRequest().getParameter("idMun");
        if(identDepto != null && !identDepto.equals("")){
            query   +=   " n.idDepartamento="+identDepto +"    and";
        }
        if(idMun != null && !idMun.equals("")){
            query   +=   " n.idMunicipio="+idMun +"    and";
        }
        
        listaMunicipio = genericoDAO.find(query.substring(0, query.length()-5) + " order by n.nomMunicipio",null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        if(dummy != null && !dummy.equals("true")){ /*Para no poner el label "Municipio"*/
            combo.setValor("");
            combo.setDescripcion("Municipio");
        }    
        micombo.add(combo);
        for(Municipio n: listaMunicipio){
            combo   =   new Combo();
            combo.setValor(n.getIdMunicipio().toString());
            combo.setDescripcion(n.getNomMunicipio());
            micombo.add(combo);
        }   
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Nivelescolaridad.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }
    }
    /**
     * Muestra los CDI's, para esto hace uso de la clase entidad Cdi.
     */
    public void  comboCDIs(){
       List<Cdi> listaCDIs = null;
      try{
          
        Map session = ActionContext.getContext().getSession();
        Object idCargo = session.get("idCargo");
        String idCargoS = "";
        String queryCargado = "";
        String idUsuarioS = session.get("idUsuario").toString();
        if(idCargo != null){
            idCargoS = session.get("idCargo").toString();
        }
        if(idCargoS.equals("6")){
            queryCargado = "WHERE c.idCdi IN (SELECT x.idCdi FROM Asociacion x WHERE x.idEmpleado = '" + idUsuarioS + "') and c.estCdi = 1";
        }else{
            queryCargado = "WHERE c.estCdi = 1";
        }

        String  query = "SELECT c FROM  Cdi c " + queryCargado;

        listaCDIs = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");

        combo.setDescripcion("Seleccione un CDI");
        micombo.add(combo);

        for(Cdi n: listaCDIs){
            combo   =   new Combo();


            combo.setValor(n.getIdCdi().toString());
            combo.setDescripcion(n.getNomCdi());
            micombo.add(combo);

        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Cdi.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());

        }  
    
    }
    
/**
 * Muestra los rangos de edad, estos estan en Rangoedad.
 */    
 public void  comboRangoEdad(){
       List<Rangoedad> listaRangoEdad = null;
      try{
        String  query = "SELECT r FROM  Rangoedad r ";

        listaRangoEdad = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");
        combo.setDescripcion("Rango Edad");
        micombo.add(combo);
        for(Rangoedad r: listaRangoEdad){
            combo   =   new Combo();
            combo.setValor(r.getIdRangoEdad().toString());
            combo.setDescripcion(r.getNomRangoEdad());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Rangoedad.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
    
    }
/**
  * Muestra los tipo de actividades contemplados.
  */  
  public void  comboRComboTipoAct(){
       List<Tipoactividad> listaTipoactividad = null;
      try{
        String  query = "SELECT t FROM  Tipoactividad t ";

        listaTipoactividad = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");
        combo.setDescripcion("Tipo Actividad");
        micombo.add(combo);
        for(Tipoactividad t: listaTipoactividad){
            combo   =   new Combo();
            combo.setValor(t.getIdTipoActividad().toString());
            combo.setDescripcion(t.getNomActividad());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Tipoactividad.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
  }
/**
* Muestra las aulas encontradas en Aula.
*/		
	public void  comboAula(){
            List<Aula> listaAula = null;
            Map session = ActionContext.getContext().getSession();
            Object idCargo = session.get("idCargo");
            String idCargoS = "";
            String queryCargado = "";
            String idUsuarioS = session.get("idUsuario").toString();
            if(idCargo != null){
                idCargoS = session.get("idCargo").toString();
            }
            if(idCargoS.equals("6") || idCargoS.equals("7") || idCargoS.equals("8") || idCargoS.equals("9")){
                queryCargado = "WHERE a.idCdi IN (SELECT x.idCdi FROM Asociacion x WHERE x.idEmpleado = '" + idUsuarioS + "') ";
            }
        try{
            String  query = "SELECT a FROM  Aula a " + queryCargado;

            listaAula = genericoDAO.find(query,null,null);
            List<Combo>  micombo    = new ArrayList<Combo>();
            Combo        combo      = new Combo();
            combo.setValor("");
            combo.setDescripcion("Aulas");
            micombo.add(combo);
            for(Aula a: listaAula){
                combo   =   new Combo();
                combo.setValor(a.getIdAula().toString());
                combo.setDescripcion(a.getNomAula());
                micombo.add(combo);
            }     
            JSONArray jo = JSONArray.fromObject(micombo);
            enviarJsonNavegador(getResponse(), jo);
            }catch(Exception e){
                Logger.getLogger(Aula.class.getName()).log(Level.SEVERE, null, e);
                enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
            }  
    
    } 
/**
 * Para mostrar tutores.
 */    
      public void  comboTutor(){
        List<Tutor> listaTutor = null;
        Map session = ActionContext.getContext().getSession();
        Object idCargo = session.get("idCargo");
        String idCargoS = "";
        String queryCargado = "";
        String idUsuarioS = session.get("idUsuario").toString();
        if(idCargo != null){
            idCargoS = session.get("idCargo").toString();
        }
        if(idCargoS.equals("6") || idCargoS.equals("7") || idCargoS.equals("8") || idCargoS.equals("9")){
            queryCargado = "WHERE t.idCdi IN (SELECT x.idCdi FROM Asociacion x WHERE x.idEmpleado = '" + idUsuarioS + "') ";
        }
      try{

        String  query = "SELECT t FROM  Tutor t " + queryCargado;


        listaTutor = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");

        combo.setDescripcion("Tutores");
        micombo.add(combo);

        for(Tutor t: listaTutor){
            combo   =   new Combo();


            combo.setValor(t.getIdTutor().toString());
            combo.setDescripcion(t.getNomTutor() + " " + t.getApeTutor());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Tutor.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      }
 /**
* Muestra los padecimientos que se tengan almacenados.
*/    
     public void  comboPadecimiento(){
       List<Padecimiento> listaPadecimiento = null;
      try{

        String  query = "SELECT p FROM  Padecimiento p ";


        listaPadecimiento = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");

        combo.setDescripcion("Padecimientos");
        micombo.add(combo);

        for(Padecimiento p: listaPadecimiento){
            combo   =   new Combo();


            combo.setValor(p.getIdPadecimiento().toString());
            combo.setDescripcion(p.getNomPadecimiento());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Padecimiento.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      } 
/**
* Muestra los tipos de salidas que se tengan.
*/     
     public void  comboTipoSalida(){
       List<Tiposalida> listaTiposalida = null;
      try{

        String  query = "SELECT t FROM  Tiposalida t";

        listaTiposalida = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");

        combo.setDescripcion("Tipo de salida");
        micombo.add(combo);

        for(Tiposalida t: listaTiposalida){
            combo   =   new Combo();
            combo.setValor(t.getIdTipoSalida().toString());
            combo.setDescripcion(t.getNomTipoSalida());
            micombo.add(combo);
        }    
        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Tiposalida.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      } 
  /**
  * Para tomar los beneficiarios.
  */   
    public void  comboBeneficario(){
       List<Beneficiario> listaBeneficiario = null;
       
       Map session = ActionContext.getContext().getSession();
       Object idCargo = session.get("idCargo");
       String idCargoS = "";
       String queryCargado = "";
       String idUsuarioS = session.get("idUsuario").toString();
       if(idCargo != null){
            idCargoS = session.get("idCargo").toString();
       }
       if(idCargoS.equals("7") || idCargoS.equals("8") || idCargoS.equals("9")){
            queryCargado = "WHERE b.idCdi IN (SELECT x.idCdi FROM Asociacion x WHERE x.idEmpleado = '" + idUsuarioS + "') ";
       }
       
       try{
        dummy = getRequest().getParameter("dummy");
        idBen = getRequest().getParameter("idBen");
 
        String  query = "SELECT b FROM  Beneficiario b " + queryCargado;
        if(idBen != null && !idBen.equals("")){
                query += " and b.idBeneficiario ="+idBen; 
        }
        listaBeneficiario = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        if(dummy != null && dummy.equals("true")){ 
        } else{
            combo.setValor("");
            combo.setDescripcion("Beneficiarios");
            micombo.add(combo);
        }

        

        for(Beneficiario b: listaBeneficiario){
            combo   =   new Combo();
           // if(dummy != null && dummy.equals("true")){ 
            //   combo.setValor(b.getCodBeneficiario());  
           // }else{
                combo.setValor(b.getIdBeneficiario().toString());
           // }
            combo.setDescripcion(b.getCodBeneficiario());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Beneficiario.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      }
/**
 * Muestra los cargos/ocupaciones de los usuarios.
 */    
    public void  comboCargo(){
       List<Cargo> listaCargo = null;
      try{

        Map session = ActionContext.getContext().getSession();
        Object idCargo = session.get("idCargo");
        String idCargoS = "";
        String queryCargado = "";
        if(idCargo != null){
            idCargoS = session.get("idCargo").toString();
        }
        if(idCargoS.equals("1")){
            queryCargado = "WHERE c.idCargo = '" +  (Integer.parseInt(idCargoS) + 1) + "'";
        }else{
            if(idCargoS.equals("2")){
                queryCargado = "WHERE c.idCargo = '" +  (Integer.parseInt(idCargoS) + 1) + "' or c.idCargo = '" +  (Integer.parseInt(idCargoS) + 2) + "' or c.idCargo = '" +  (Integer.parseInt(idCargoS) + 3) + "' or c.idCargo = '" +  (Integer.parseInt(idCargoS) + 4) + "'";
            }else{
                if(idCargoS.equals("6")){
                    queryCargado = "WHERE c.idCargo = '" +  (Integer.parseInt(idCargoS) + 1) + "' or c.idCargo = '" +  (Integer.parseInt(idCargoS) + 2) + "' or c.idCargo = '" +  (Integer.parseInt(idCargoS) + 3) + "'";
                }else{
                    if(idCargoS.equals("7")){
                        queryCargado = "WHERE c.idCargo = '" +  (Integer.parseInt(idCargoS) + 1) + "' or c.idCargo = '" +  (Integer.parseInt(idCargoS) + 2) + "'";
                    }else{
                        if(idCargoS.equals("8")){
                            queryCargado = "WHERE c.idCargo = '" +  (Integer.parseInt(idCargoS) + 1) + "'";
                        }
                    }
                } 
            }
        }
        String  query = "SELECT c FROM  Cargo c " + queryCargado;

        listaCargo = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");

        combo.setDescripcion("Cargos");
        micombo.add(combo);

        for(Cargo c: listaCargo){
            combo   =   new Combo();

            combo.setValor(c.getIdCargo().toString());
            combo.setDescripcion(c.getNomCargo());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Cargo.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      }  
/**
 * Necesario para las actividades
 */    
   public void  comboActividades(){
       List<Actividad> listaActividad = null;
      try{

        String  query = "SELECT a FROM  Actividad a ";


        listaActividad = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");

        combo.setDescripcion("Actividades");
        micombo.add(combo);

        for(Actividad a: listaActividad){
            combo   =   new Combo();

            combo.setValor(a.getIdActividad().toString());
            combo.setDescripcion(a.getNomActividad());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Actividad.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      }
   /**
    * Muestra los Departamentos.
    */
   public void  comboDepartamento(){
       List<Departamento> listaDepartamento = null;
      try{

        String  query = "SELECT d FROM  Departamento d ";


        listaDepartamento = genericoDAO.find(query,null,null);
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        combo.setValor("");

        combo.setDescripcion("Departamento");
        micombo.add(combo);

        for(Departamento d: listaDepartamento){
            combo   =   new Combo();

            combo.setValor(d.getIdDepartamento().toString());
            combo.setDescripcion(d.getNomDepartamento());
            micombo.add(combo);
        }    

        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Departamento.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      } 
/**
* Para validar usuario y/o DUI.
*/   
      public void  validarUsuarios(){
       int  usuario = 0;
       int  dui = 0;
       try{
        nDusuario = getRequest().getParameter("nDusuario");
        nDUI = getRequest().getParameter("nDUI"); 
        dummy = getRequest().getParameter("dummy");// para saber si se estas actualizando o insertando
        
        
        String  query = "SELECT count(e) FROM  Empleado e where ";
        if(nDusuario != null && !nDusuario.equals("")){
            query  += "e.nomUsuario='"+nDusuario+"'";
        }
        if(dummy != null && !dummy.equals("")){
            query  += " and e.idEmpleado <> '"+dummy+"'";
        
        }
        usuario = genericoDAO.countRow(query);
        query = "SELECT count(e) FROM  Empleado e where ";
        if(nDUI != null && !nDUI.equals("")){
            query  += "e.duiEmpleado='"+nDUI+"' ";
        }
        if(dummy != null && !dummy.equals("")){
            query  += " and e.idEmpleado <> '"+dummy+"'";
        
        }        
        dui = genericoDAO.countRow(query);
 
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();

        micombo.add(combo);

        
        combo   =   new Combo();
        combo.setValor("");

        if(usuario > 0){ 
            combo.setDescripcion("usuario");
        }   
        if(dui > 0){ 
            combo.setDescripcion("dui");
        } 
            
        micombo.add(combo);
        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Empleado.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
      } 
      /**
       * Valida que no se repitan nombre de CDI´s.
       */
public void  validarCDIs(){
        int  cdis = 0;
        try{
        nombreCdi = getRequest().getParameter("nombreCdi");
        dummy = getRequest().getParameter("dummy");// para saber si se estas actualizando o insertando
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        micombo.add(combo);
        String  query = "SELECT count(c) FROM  Cdi c where ";
        if(nombreCdi!=null && !nombreCdi.equals("")){
            query +=    " upper(c.nomCdi) = upper('"+nombreCdi+"')";
        }
        if(dummy != null && !dummy.equals("")){
            query  += " and c.idCdi <> '"+dummy+"'";
        
        } 
        cdis = genericoDAO.countRow(query);
        combo.setValor("");

        if(cdis > 0){ 
            combo.setDescripcion("cdis");
        }else{
            combo.setDescripcion("");
        }   
        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Cdi.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
}   
/**
 * Validar aulas en cada CDI.
 */
public void  validarAula(){
        Map session = ActionContext.getContext().getSession();

        String idUsuarioS = session.get("idUsuario").toString();
   
        int  aula = 0;
        try{
        nombreAula = getRequest().getParameter("nombreAula");
        dummy = getRequest().getParameter("dummy");// para saber si se estas actualizando o insertando
        List<Combo>  micombo    = new ArrayList<Combo>();
        Combo        combo      = new Combo();
        micombo.add(combo);
        String  query = "SELECT count(a) FROM  Aula a where ";
        if(nombreAula!=null && !nombreAula.equals("")){
            query +=    " upper(a.nomAula) = upper('"+nombreAula+"')";
        }
        if(dummy != null && !dummy.equals("")){
            query  += " and a.idAula <> '"+dummy+"'";
        
        } 
        if(idUsuarioS != null && !idUsuarioS.equals("")){
            query  += " and a.idCdi = (SELECT x.idCdi FROM Asociacion x WHERE x.idEmpleado = '" + idUsuarioS + "')";
        }
        aula = genericoDAO.countRow(query);
        combo.setValor("");

        if(aula > 0){ 
            combo.setDescripcion("aula");
        }else{
            combo.setDescripcion("");
        }   
        
        JSONArray jo = JSONArray.fromObject(micombo);
        enviarJsonNavegador(getResponse(), jo);
        }catch(Exception e){
            Logger.getLogger(Aula.class.getName()).log(Level.SEVERE, null, e);
            enviarMensajeStatic(Constantes.MENSAJE_ERROR+e.getCause().toString(), getResponse());
        }  
}         
      
}
